﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Sisco.LogicaNegocio
{
    public class TipoEquipoBLL
    {
        public List<AccesoDatos.TIPOEQUIPO> Listar()
        {
            AccesoDatos.TipoEquipoDAO tipoequipoDAO = new AccesoDatos.TipoEquipoDAO();

            return tipoequipoDAO.Listar();
        }

        public List<AccesoDatos.TIPOEQUIPO> BuscarTipoEquipo(string nombreTipoEquipo)
        {
            List<AccesoDatos.TIPOEQUIPO> lista = this.Listar();

            return lista.Where(x => x.NOMBRETIPO.Trim().Equals(nombreTipoEquipo,StringComparison.CurrentCultureIgnoreCase)).ToList();
        }

        public AccesoDatos.TIPOEQUIPO Obtener(int idTipoEquipo)
        {
            List<AccesoDatos.TIPOEQUIPO> lista = this.Listar();

            try
            {
                AccesoDatos.TIPOEQUIPO resultado = lista.SingleOrDefault(x => x.ID == idTipoEquipo && x.ELIMINADO == 0);

                return resultado;
            }
            catch (Exception)
            {                
                throw;
            }
        }

        public int Registrar(AccesoDatos.TIPOEQUIPO nuevoTipoEquipo)
        {
            AccesoDatos.TipoEquipoDAO tipoEquipoDAO = new AccesoDatos.TipoEquipoDAO();

            return tipoEquipoDAO.Registrar(nuevoTipoEquipo);
        }

        public void Actualizar(AccesoDatos.TIPOEQUIPO selectedTipoEquipo, AccesoDatos.TIPOEQUIPO updEquipo)
        {
            AccesoDatos.TipoEquipoDAO tipoEquipoDAO = new AccesoDatos.TipoEquipoDAO();

            tipoEquipoDAO.Actualizar(selectedTipoEquipo, updEquipo);
        }

        public void Eliminar(AccesoDatos.TIPOEQUIPO selectedEquipo)
        {
            AccesoDatos.TipoEquipoDAO tipoEquipoDAO = new AccesoDatos.TipoEquipoDAO();

            tipoEquipoDAO.Eliminar(selectedEquipo);
        }
    }
}
